/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.delogic.simuladorbancario.main;

import br.com.delogic.simuladorbancario.model.Cliente;
import br.com.delogic.simuladorbancario.model.ClienteFisico;
import br.com.delogic.simuladorbancario.model.ClienteJuridico;

/**
 *
 * @author celio
 */
public class Cafeteira {

    public void fazerCafe(Cafe tamanho) {
        System.out.println("Fazendo cafe " + tamanho.getDescricao() + 
                " - " + tamanho.getTamanho());
    }

    public static void main(String[] args) {
//        Veiculo carro = new Carro();
//        //carro.setNumeroRodas(4);
//        carro.locomover();
//        
//        Aviao aviao = new Aviao();
//        aviao.locomover();
//        
//        Automovel moto = new Moto();
//        moto.locomover();
//        
//        //classcastexception
//        //Moto moto2 = (Moto) carro;
//        //moto.locomover();
//        
//        abastecer(carro, 50);
//        abastecer(aviao, 1000);
//        abastecer(moto, 5);
    
        Cliente cliente = new ClienteFisico();
        cliente.setNomeRazao("Nome");
        cliente.setSobrenomeNomeFantasia("Sobrenome");
        ((ClienteFisico)cliente).setCpf("123456789");
        
        System.out.println(cliente.getNomeCompleto());
        validarDocumentos(cliente);
    }
    
    public static void validarDocumentos(Cliente cliente){
        if (cliente instanceof ClienteFisico){
            ClienteFisico clie = (ClienteFisico) cliente;
            System.out.println(clie.getCpf());
        } else if (cliente instanceof ClienteJuridico){
            System.out.println(((ClienteJuridico) cliente).getCnpj());
        } else {
            throw new IllegalArgumentException("Isso não é um cliente!");
        }
    }
    
    
    
    public static void abastecer(Veiculo veiculo, int qtde){
        veiculo.abastecer(qtde);
        System.out.println("abastecendo veiculos");
    }
    
    public static void abastecer(Aviao veiculo, int qtde){
        veiculo.abastecer(qtde);
        System.out.println("abastecendo aviões");
    }

}
